package com.lcf.ploy;

/**
 * @author 懒洋洋不懒
 * @version 1.0
 * @date 2025/4/11 9:15
 * @description  非静态成员内部类
 */
public class PloyDemo1 {
    public static void main(String[] args) {
        Outer.Inner inner = new Outer.Inner();
        System.out.println("num=" + inner.innerNum);
        inner.innerMethod();
        inner.method();
        inner.test2();

    }

}

class Outer {
    public int num = 10;
    public int outerNum = 100;

    public static int staticNum = 20;
    public static int outerStaticNum = 200;

    public void method() {
        System.out.println("outer中的method方法");
    }

    public void outMethod() {
        System.out.println("outer中的outMethod方法");
    }

    public static void staticMethod() {
        System.out.println("outer中的staticMethod方法");
    }

    public static void outStaticMethod() {
        System.out.println("outer中的outerStaicMethod方法");
    }

    //测试外部类outer中访问内部类inner中的成员
    public void test1() {
        Inner inner = new Inner();
        System.out.println(inner.num);
        System.out.println(inner.innerNum);
        inner.innerMethod();
        inner.method();
    }

    static class Inner {
        public  static     int num = 20;
        public  static      int innerNum = 200;

        public void method() {
            System.out.println("inner中的method方法");
        }

        public void innerMethod() {
            System.out.println("inner中的innerMethod方法");
        }

        //测试内部类inner中访问内部类outer中的成员
        public void test2() {
            System.out.println(num);


//外部类的成员 对象成员对象调，类成员类调

        }
    }

}